package com.eastchina.fids2focs.dao;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang.math.NumberUtils;
import org.springframework.beans.factory.annotation.Autowired;

import com.eastchina.fids2focs.domain.SystemRole;
import com.eastchina.fw.database.dao.ProcedureDAO;

public class SystemManagerProcDAOImpl implements SystemMamagerProcDAO {

	/**
	 * Procedure DAO instance
	 */
	@Autowired
	ProcedureDAO procDAO;
	
	/**
	 * 增加角色基本信息
	 * @param role 角色基本信息
	 * @param loginId 登陆用户ID
	 */
	public int addRole(SystemRole role, String loginId) {
		
		// Create SQL Parameter
		Map<String, String> sqlParams = new HashMap<String, String>();
		// ROLE_ID
		sqlParams.put("roleId", role.getRoleId());
		// ROLE_NAME
		sqlParams.put("roleName", role.getPname());
		// DESCRIPTION
		sqlParams.put("desc", role.getPnote());
		// LOGIN_ID
		sqlParams.put("loginId", loginId);
		
		// Execute SQL
		procDAO.executeForObject("procedure.sf_addrole", sqlParams);
		
		return NumberUtils.toInt(sqlParams.get("oResult"));
	}
	
	/**
	 * 修改角色基本信息
	 * @param role 角色基本信息
	 * @param loginId 登陆用户ID
	 */
	public int editRole(SystemRole role, String loginId) {
		
		// Create SQL Parameter
		Map<String, String> sqlParams = new HashMap<String, String>();
		// ROLE_ID
		sqlParams.put("roleId", role.getRoleId());
		// ROLE_NAME
		sqlParams.put("roleName", role.getPname());
		// DESCRIPTION
		sqlParams.put("desc", role.getPnote());
		// LOGIN_ID
		sqlParams.put("loginId", loginId);
		
		// Execute SQL
		procDAO.executeForObject("procedure.sf_editrole", sqlParams);
		
		return NumberUtils.toInt(sqlParams.get("oResult"));
	}
	
	/**
	 * 删除角色基本信息
	 * @param roleId 角色ID
	 * @param loginId 登陆用户ID
	 */
	public int delRole(String roleId, String loginId) {
		
		// Create SQL Parameter
		Map<String, String> sqlParams = new HashMap<String, String>();
		// ROLE_ID
		sqlParams.put("roleId", roleId);
		// LOGIN_ID
		sqlParams.put("loginId", loginId);
		
		// Execute SQL
		procDAO.executeForObject("procedure.sf_delrole", sqlParams);
		
		return NumberUtils.toInt(sqlParams.get("oResult"));
	}	

}
